/*
 * @(#)DbConfigDaoImpl.java   1.0  2021年11月17日
 * 
 * Copyright (c)	2014-2020. All Rights Reserved.	GuangZhou hhmk Technology Company LTD.
 */
package com.swift.dts.dao.impl;

import java.util.List;
import java.util.stream.Collectors;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.swift.dts.dao.DbConfigDao;
import com.swift.dts.loadconfig.JsonDataBaseConfig;
import com.swift.dts.loadconfig.model.DtsDataBase;
import com.swift.util.type.TypeUtil;

/**
 * 添加说明 
 * @author zhengjiajin
 * @version 1.0 2021年11月17日
 */
@Component
public class DbConfigDaoImpl implements DbConfigDao {

    @Autowired
    private JsonDataBaseConfig jsonDataBaseConfig;
    /** 
     * @see com.swift.dts.dao.DbConfigDao#list()
     */
    @Override
    public List<DtsDataBase> list() {
        return jsonDataBaseConfig.loadNew();
    }

    /** 
     * @see com.swift.dts.dao.DbConfigDao#save(java.util.List)
     */
    @Override
    public void save(List<DtsDataBase> list) {
        jsonDataBaseConfig.saveConfig(list);
    }

    /** 
     * @see com.swift.dts.dao.DbConfigDao#sourceList()
     */
    @Override
    public List<DtsDataBase> sourceList() {
        List<DtsDataBase> list = jsonDataBaseConfig.load();
        if(TypeUtil.isNull(list)) return null;
        return list.stream().filter(db->db.getIsSource()).collect(Collectors.toList());
    }

    /** 
     * @see com.swift.dts.dao.DbConfigDao#slaveList()
     */
    @Override
    public List<DtsDataBase> slaveList() {
        List<DtsDataBase> list = jsonDataBaseConfig.load();
        if(TypeUtil.isNull(list)) return null;
        return list.stream().filter(db->!db.getIsSource()).collect(Collectors.toList());
    }

    /** 
     * @see com.swift.dts.dao.DbConfigDao#get(java.lang.String)
     */
    @Override
    public DtsDataBase get(String key) {
        return jsonDataBaseConfig.findConfig(key);
    }

}
